// 1.导入express
const express = require('express');
// 2.创建app对象
const app = express();
// 想要接收post请求体参数req.body,需要配置一行代码
app.use(express.urlencoded({ extended: false }));//下节课会讲,在官网上也可以找到

// 3.书写端口  注册端口post请求往body里面写,   get请求往params里面写
// 导入数据库操作模块
const db = require('./database/index');
app.post('/api/reguser', (req, res) => {
    // 后端接收post请求体用:req.body,可以接受username和passwrod,把请求体参数放到对象里面
    // console.log(req.body);//直接这样写收不到显示undifind,
    let { username, password } = req.body;
    // 定义sql语句,根据用户名查询用户是否存在
    let sql = `select * from user where username="${username}"`;
    db(sql, (err, results) => {
        // 判断语句 err,是否错误
        if (err) {
            return res.send({ status: 1, message: 'sql语法错误: ' + err.message });
        }
        // results 得到的信息是否存在 因为返回的是数组,所以可以按照他的数组长度来当数组长度大于等于1的时候(索引是从0开始,数组长度是从1开始)就是存在的
        if (results.length >= 1) {
            return res.send({ status: 1, message: '用户名以存在，请更换用户名！' });
        }
        // 在执行sql语句里面 - 添加用户！！！
        // 下载utility ：  npm  i  utility@1.17.0
        // 导入utility，加密密码
        const utility = require('utility');
        password = utility.md5(password);
        // 在执行sql里面进行操作 添加用户
        let sql = `insert into user set username="${username}",password="${password}"`;
        db(sql, (err, results) => {
            // 判断sql
            if (err) {
                return res.send({ status: 1, message: 'sql语法错误: ' + err.message });
            }
            // 判断影响函数
            if (results.affectedRows !== 1) {
                return res.send({ status: 1, message: '注册用户失败！' });
            }
            // 注册功能完成
            res.send({ status: 0, message: '注册成功！' });
        })
    })

})


// 4.启动服务
app.listen(3006, function () {
    console.log('http://localhost:3006');
})